#ifndef __CM_GPIO_TOOL_H__
#define __CM_GPIO_TOOL_H__

#include <stdint.h>
#include "cm_gpio.h"
#include "cm_iomux.h"

#include "cm_common.h" // 包含常用宏定义和类型



// GPIO 句柄结构
typedef struct
{
    cm_gpio_num_e gpio_num;       // GPIO编号
    cm_iomux_pin_e pin;           // 对应IOMUX引脚
    cm_iomux_func_e func;         // 引脚复用功能
    cm_gpio_direction_e direction;// 方向
    cm_gpio_pull_e pull;          // 上下拉
} CM_GPIO_Handle_t;

// 初始化 GPIO
int cm_gpio_init_tool(CM_GPIO_Handle_t *hgpio);

// 写 GPIO
int cm_gpio_write(CM_GPIO_Handle_t *hgpio, cm_gpio_level_e level);

// 读 GPIO
int cm_gpio_read(CM_GPIO_Handle_t *hgpio, cm_gpio_level_e *level);

// 翻转 GPIO 电平
int cm_gpio_toggle(CM_GPIO_Handle_t *hgpio);


#endif
